Ethereum state transition function
APPLY(S,TX) -> S'
https://raw.githubusercontent.com/ethereumbuilders/GitBook/master/en/vitalik-diagrams/ethertransition.png
Minerがやる各Transactionの確認事項 1. Transactionのフォーマットの確認
変数の数が合っているか
NonceがSender accountのNonceと一緒か 2. Transaction feeの計算 STARTGAS * GASPRICE
4. FeeをSender account残高から引き、Sender accountのnonceを増加する
残高足りないとエラー
5. GAS = STARTGAS を設定
6. Transactionの合計Byte数を計算し、GASから引く
7. Transaction valueを受取アドレスへ移転
受取アカウントが存在しなければ、新規作成する
受取アカウントがコントラクトであれば、コントラクトのコードを実行する(ガスが途中で切ればエラー)
8. 上記の工数にて、ガスかTransaction valueが足りないという理由でエラーが起きた場合
9. エラーがない場合
ガスの残りをSenderに返金し、Miner feeを支払う
参考文献